package jmine.tec.web.wicket.component.command;

import java.io.Serializable;
import java.util.List;

import jmine.tec.web.wicket.component.command.img.ImageCommand;

/**
 * Interface que define como devem ser incluidos botões (do tipo imagem) em uma tabela.
 * 
 * @author Rafael Volpato
 * @date Nov 11, 2011
 */
public interface TableCommandsProvider extends Serializable {

    /**
     * Informa se deve ser incluida na tabela de resultados uma coluna de ações.
     * 
     * @return <code>true</code> se deve ser incluida na tabela de resultados uma coluna de ações, <code>false</code> caso contrário
     */
    boolean shouldIncludeTableCommands();

    /**
     * Retorna a lista de comandos que deve ser exibidos junto com a tabela de entidade encontradas.
     * 
     * @param entityPK entityPK
     * @return lista de comandos que devem ser exibidos
     */
    List<ImageCommand> getTableCommands(Long entityPK);
}
